#ifndef SYMB_AFF_HPP
#define SYMB_AFF_HPP

#include <iostream>
#include <string>
#include <sstream>
#include <cassert>
#include "Type.hpp"
#include "Symbole.hpp"


using namespace std;

class SymboleAff : public Symbole
{
	protected:
		bool affected;
 	   	Type* type;

	public:

		/*
 		 * Temporaire
 		 */
		SymboleAff(string category);

		/**
		 * Constructeur
		 */
		SymboleAff(Type* type,string category);

		/**
		 * Destructeur
		 */
		virtual ~SymboleAff();

		bool isAffected() const;

		const Type* getType() const;

		int setType(Type *type);

		//friend ostream& operator<<(ostream& os, const SymboleAff& symbAff);

		/**
		 * @return Chaîne représentant les attributs du symbole.
		 */
		//virtual char* getAttributes() const;

  	  	//void print(ostream& os) const;
  	  	virtual string toString() const;

};

#endif
